package com.fuyun.rpc.common.domain;

import com.fuyun.rpc.common.security.ClientCredentials;
import com.fuyun.rpc.common.trace.TraceContext;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @author: zrq1351
 * @date: 2025/2/14
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RpcRequest implements Serializable {

	/**
	 * 服务名称
	 */
	private String serviceName;

	/**
	 * 方法名称
	 */
	private String methodName;

	/**
	 * 参数类型列表
	 */
	private Class<?>[] parameterTypes;

	/**
	 * 参数列表
	 */
	private Object[] args;

	/**
	 * 客户端凭证信息
	 */
	private ClientCredentials credentials;

	/**
	 * 链路追踪上下文
	 */
	private TraceContext traceContext;

}